package net.neptech.domian.model;

import com.alibaba.fastjson2.annotation.JSONField;
import lombok.Data;

import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;

/**
 * @Author: liyuxiang
 * @Date: 2025/8/12 21:23
 * @Description: TODO
 */
@Data
public class LoginUser implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 用户唯一标识
     */
    @JSONField(serialize = false)
    private String token;

    /**
     * 用户名id
     */
    private Long userId;

    /**
     * 用户名
     */
    private String username;

    /**
     * 头像
     */
    private String avatar;

    /**
     * 登录时间
     */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Long loginTime;

    /**
     * 过期时间
     */
    private Long expireTime;

    /**
     * 登录IP地址
     */
    private String ipaddr;

    /**
     * 权限列表
     */
    @JSONField(deserializeUsing = HashSet.class)
    private Set<String> permissions = new HashSet<>();

    /**
     * 角色列表
     */
    @JSONField(deserializeUsing = HashSet.class)
    private Set<String> roles = new HashSet<>();

}
